from faker import Faker

fake = Faker(locale="zh_cn")  # locale默认为 en_US


def 数字类型():
    # 数字类型
    # 随机整数
    print(fake.random_int(min=1, max=1000))
    # 随机小数
    print(fake.pyfloat(left_digits=2, right_digits=2, positive=True))
    # 随机百分比
    print(fake.pyfloat(left_digits=2, right_digits=2, positive=True, max_value=100.00))


def 字符串类型():
    # 字符串类型
    # 单个单词
    print(fake.word(ext_word_list=None))
    # 多个单词
    print(fake.words(nb=3, ext_word_list=None, unique=False))
    # 单个文本
    print(fake.text(max_nb_chars=200, ext_word_list=None))
    # 多个文本
    print(fake.texts(nb_texts=3, max_nb_chars=200, ext_word_list=None))
    # 单个句子
    print(fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None))
    # 多个句子
    print(fake.sentences(nb=3, ext_word_list=None))
    # 单个段落
    print(fake.paragraph(nb_sentences=3, variable_nb_sentences=True, ext_word_list=None))
    # 多个段落
    print(fake.paragraphs(nb=3, ext_word_list=None))


def 地址类型():
    # 地址类型
    # 地址
    print(fake.address())
    # 国家名称
    print(fake.country())
    # 省
    print(fake.province())
    # 完整城市名称
    print(fake.city())
    # 城市名字(不带市县)
    print(fake.city_name())
    # 城市后缀名
    print(fake.city_suffix())
    # 地区
    print(fake.district())
    # 邮编
    print(fake.postcode())
    # 街道地址
    print(fake.street_address())
    # 街道名称
    print(fake.street_name())
    # 街道后缀名
    print(fake.street_suffix())
    # 楼名
    print(fake.building_number())


def 时间类型():
    # 时间类型
    # 日期
    print(fake.date_object())
    # 时间
    print(fake.time_object())
    # 日期时间
    print(fake.date_time_between(start_date="-30y", end_date="now"))


def 人名类型():
    # 人名类型
    # 姓名
    print(fake.name())
    # 性别
    print(fake.random_element(("男", "女")))
    # 婚姻状况
    print(fake.random_element(("已婚", "未婚")))
    # 教育程度
    print(fake.random_element(("小学", "初中", "高中", "大学", "硕士", "博士")))
    # 职业
    print(fake.job())
    # 社交媒体
    print(fake.profile())
    # 身份证号码
    print(fake.ssn(gender='M'))


def 公司类型():
    # 公司类型
    # 商业用语
    print(fake.bs())
    # 妙语
    print(fake.catch_phrase())
    # 公司名
    print(fake.company())
    # 公司名前缀
    print(fake.company_prefix())
    # 公司名后缀
    print(fake.company_suffix())


def 邮箱和电话类型():
    # 邮箱和电话类型
    # 生成邮箱
    print(fake.email())
    # 生成手机号
    print(fake.phone_number())
    # 生成座机号
    print(fake.phone_number())


def 网络类型():
    # 网络类型
    # IP地址
    print(fake.ipv4())
    # 域名
    print(fake.domain_name())


def 档案类型():
    # 档案类型
    # 详细档案
    print(fake.profile(fields=None, sex=None))
    # 简洁档案
    print(fake.simple_profile(sex=None))


if __name__ == '__main__':
    # 数字类型()
    # 字符串类型()
    # 地址类型()
    # 时间类型()
    # 人名类型()
    # 公司类型()
    # 邮箱和电话类型()
    # 网络类型()
    # 档案类型()

    # 批量生成数据
    for _ in range(5):
        name = fake.name()
        job = fake.job()
        address = fake.address()
        print(f"姓名: {name}, 工作: {job}, 地址: {address}")
